This module overload official OpenERP membership module for adding some functionnalities that could be useful:
- grouped membership;
- date to date membership;
- - members identfication number.
+ - members identfication number;
+ - cron job to update membership status.
""",
'author': 'L\'Heureux Cyclage - LHC',
'website': 'http://www.heureux-cyclage.org',
<field name="number_next">1</field>
<field name="number_increment">1</field>
</record>
+ <record id="ir_cron_scheduler_action" model="ir.cron">
+ <field name="name">Update partners membership state</field>
+ <field eval="True" name="active"/>
+ <field name="user_id" ref="base.user_root"/>
+ <field name="interval_number">1</field>
+ <field name="interval_type">days</field>
+ <field name="numbercall">-1</field>
+ <field eval="False" name="doall"/>
+ <field eval="'res.partner'" name="model"/>
+ <field eval="'update_membership_status'" name="function"/>
+ <field eval="'()'" name="args"/>
+ </record>
+
</data>
</openerp>
from dateutil.relativedelta import relativedelta
from openerp.tools.translate import _
-
class Partner(osv.osv):
_inherit = 'res.partner'
print ("DEV: [remembership] [partner] [create_membership_invoice] return=%s" % str(invoice_list))
return invoice_list
+ def update_membership_status(self, cr, uid):
+ """Action for updating old members status with scheduled cron job"""
+ partner_obj = self.pool.get('res.partner')
+ today = date.today()
+ ids = partner_obj.search(cr, uid, [('membership_state', '=', 'paid'), ('membership_stop', '<', today)], context=None)
+ self.write(cr, uid, ids, {'membership_state': 'old'}, context=None)
+
Partner()